1. Field of the Invention
The present invention generally relates to software development systems and more particularly, the present invention relates to systems and methods of software development wherein individual software modules are developed for a unified project or software product by independent programmers that may be remotely located.
2. Background Description
The high-tech industry is moving very fast and the first to market has a big advantage over competitors, often deciding the early winner. So, speeding up software development increases the likelihood of success. One way to speed up software development is to increase the number of programmers on the project, distributing the workload to as many programmers as possible. Unfortunately, hiring people for a very short period of time complicates rather than simplifies development.
Further, currently there is a severe shortage of computer programmers. Even employers that are willing to pay high salaries frequently are unable to find enough skilled programmers to meet requirements for a particular programming job. So, to supplement their permanent workforce, companies are forced to contract with independent contractors, delegating customized or specialized software development to the contractors. Typically, the contractors are paid either in advance or, incrementally, as the project progresses. Regardless of how much the package developer may be willing to pay, contractors still face the same programmer shortage.
As a result, with the advent of Internet, to maximize the number of programmers working on a particular project, collaborative software development projects, such as open source software development (e.g., Linux), are undertaken or initiated daily. Web based electronic businesses (e-businesses) have formed offering contractors a solution to temporary programmer shortages. One such e-business is an auction site (www.cosource.com) for software development contracts, focusing on the needs of open source development. However, this approach matches a single programmer with each task. Money is paid in advance with the package developer bearing the risk that the project will not complete on schedule.
Accordingly, there is a need for reducing software development time and costs, while increasing the likelihood of software development success.
It is therefore a purpose of the present invention to reduce software development time and development costs;
It is another purpose of the invention to increase the likelihood of success for software development projects;
It is yet another purpose of the present invention to reduce software development time and costs, while increasing the likelihood of software development success.
The present invention is a system, method and program product for solving software development needs of customers by unleashing the full potential of world-wide skilled personnel, with the possibility that when the offered price is high, many developers will try to compete and deliver a module even with no money up front. A new computer program to be developed is outlined and the outline organized to identify required modules. Required modules are provided to the system, which categorizes them and posts a list of required modules with corresponding requirements on, for example, a dedicated web site. Module requirements may include module specifications, a corresponding price and a deadline. Software developers intending to participate may provide an intention to submit. If fewer than two developers intend to submit module candidates for one or more required modules, the computer program outline may be reorganized to encourage more participants. For each required module where at least two module candidates are received, the candidates are tested for compliance with corresponding module requirements. A module candidate is selected for each required module for inclusion as a module included in the software package and payment is transferred to developers of the selected module candidates. The selected module candidates may be included in the computer program and the computer program may be tested.